变量和数据类型
一、变量
1 | 变量:值是可以改变的 |
注意:在Python中,所有的变量必须先赋值再使用(先定义,在定义必须要赋值)
1 | Traceback (most recent call last): |
- 一行代码同时为多个变量赋同样的值
1 | a = b = c = 1 |
- 交换两个变量的值
1 | a = 3 |
变量的本质
在代码中,定义a = 5,对于计算机而言会做什么事情呢?
1 | # 变量的本质:内存中一块存储空间,当我们声明一个变量时,计算机就需要在内存给变量分配一块内存空间 |
1 | // C语言 |
1 | # Python语言 一切皆对象 |
二、标示符
标示符一般是指变量名、函数名、类名、包名等,在Python定义标示符时需要注意几下规则:
标示符不能以数字开头,可以由字母、数字、下划线来组成(甚至可以是中文,但是不建议)
中文命名可能出现乱码
在Python2中默认并不支持中文(标示符、代码中都不能出现中文),因为Python2的默认编码是ASCII,ASCII并不支持中文
A-65 a-97
要让Python2支持中文,需要在文件头加 # coding:utf-8
在Python3中默认使用的是unicode字符集(万国码-支持世界所有的语言-规范标准 - utf-8编码方式 )
区分大小写 name 和Name是两个变量
不能以Python中的关键字和保留字作为标示符
1 | import keyword |
命名的细节(开发规范/开发习惯)
name = “Mr_lee”
age = 18
- 望文生义,便于理解和记忆 (不要使用拼音 )
- 变量名和函数名,建议使用小写。如果由多个单词组成时,中间用下划线连接(this_is_a_var)或不用下划线连接,连接处的单词首字母大写(helloWord) - 小驼峰
- 类名:每个单词的首字母大写,其余全部小写(HelloWorld) - 大驼峰
- 包名:全部小写,不加下划线
三、数据类型
1 | 在Python中定义的每一个变量都是有类型的 |
在Python定义变量时,不需要声明类型,与C语言不一样
1 | // C语言定义变量时,必须先指定数据的类型 |
- 动态数据类型: 变量在声明时,不需要指定数据类型 如:Python
1 | a = 5 # => int |
代码在执行会根据值来推导出它的数据类型
- 静态数据类型:在声明变量时,需要先指定数据类型,如:C、C++、Java
1 | //C语言 |
Python中常见的数据类型(内置的数据类型)
数字类型(广义)
- 整型(整数 int) a = 5
- 浮点型(小数 float 不区分单精度和双精度) pi =- 3.14
- 复数 a + bj 用的很少
布尔类型
- 表示为真和假
- 值可以为True和False
- 在内存中是以1和0进行存储的 本质上是整型
1
2
3
4
5
6True + True # => 1
3 > 2 # => True
# 表示性别
gender = True # 男
gender = False # 女字符串类型
- 使用’x’或”x”或’’’x’’’或”””x”””都表示是字符串
1
2
3
4
5
6
7a = Tom # 错误
a = "Tom"
a = 'Tom'
a = """
可以换行
表示多行字符串
"""1
2a = "Tom\n哈哈"
print(a)转义字符
- \n 表示换行
- \t 表示制表符 4个空格(有小问题)
\'
输出单引号 在单引号中嵌套单引号\"
输出双引号 在双引号嵌套双引号\\
输出一个反斜杠
可以直接在单引号中嵌套双引号或在双引号中嵌套单引号
空类型 : None a = None
容器类型(广义):
- 列表 – C中的数组 存储多个数据 [2,4,6,8,22]
- 元组 – 可以理解为是一个不可变化的“列表” (2,4,6,8,22)
- 字典 – {key:value,…}
- 集合 - {2,3,4,5}
四、输入和输出
1、输出
- 使用print()函数,输出某个变量或某个值到屏幕中 内存->屏幕
1 | a = 5 |
1 | # 一次输出多个值 |
为什么print会自动换行
1 | # 源代码 |
注释方式:
- 单行注释 #
- 多行注释 ‘’’ ‘’’ 或 “”” “””
注释的作用:
- 解释说明: 给代码添加额外的说明,解释代码的作用
- 屏蔽代码:不让代码执行
2、输入
输入是从键盘输入一个值给内存中某个变量
1 | input() # 从键盘输入的数据默认都是字符串 a = |
1 | # 加提示 |
输入整数:
1 | int(input('请输入')) # 类型转换 字符串->int a = |
五、类型转换
1、将其它类型转为int类型
- float转int
1 | pi = 3.14 |
- str转int
1 | s = '125' |
- bool转int
1 | y = True |
2、将其它类型转为float类型
- int转float
1 | a = 5 |
- str转float
1 | s = '3.14' |
- bool转float
1 | y = True |
3、将其它类型转为str类型
- int转str
1 | a = 5 |
- float转str
1 | pi = 3.14 |
- bool转str
1 | y = True |
- 列表转str
1 | n = [2,4,6,8,22] |
将字符串和整数相加:
1 | r = 'a' + 1 # 字符串和整数不能直接相加 |
六、获取类型
- type()函数:获取某个变量或值的数据类型
1 | a = 5 |
- isinstance()函数:判断某个变量或值是否为某个类型 结果为bool类型
1 | a = 5 |
七、运算符和表达式
什么是运算符
运算符也称为操作符,+ - * / % > < … operator
什么是表达式
由操作符和操作数组成的,a + b , a>b ,a 也可以是一个单值
运算符的分类:
- 算术运算符
1 | # + - * / % // |
- 关系运算符
1 | # > < >= <= == != |
- 赋值运算符
1 | a = 5 # a是作为左值 -- 修改 |
- 复合赋值运算符
1 | # += -= *= /= %= //= |
- 逻辑运算符
1 | # 逻辑与 and 左右两边的表达式都为真 则结果为真 |
输入一个年份,计算这一年是否为闰年
1 | year = int(input('请输入年份:')) |
- 位运算符(了解)
1 | # 按位运算: 按位与、按位或、按位取反、按位异或、左移、右移 |
1 | a = 0b00111100 # 10进制的60 |
- 三元运算符
1 |
|
八、运算符的优先级
1 | 1. 先算乘除再算加减,遇到括号先算括号里的 |
作业:
1. 练习上课代码
2. 总结笔记
3.